#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
using namespace std;
bool cmp1(string a, string b)
{
	if (a.size() != b.size())return a.size() < b.size();
	if (a > b)return false;
	return true;
}
bool cmp2(string a, string b)
{
	if (a > b)return false;
	return true;
}
int main()
{
	int n, i;
	string str1[10000 + 5], str2[10000 + 5];
	cin >> n;
	for (i = 0; i < n; i++) { cin >> str1[i]; str2[i] = str1[i]; }
	sort(str1, str1 + n, cmp1);
	for (i = 0; i < n; i++) { cout << str1[i]; if (i != n - 1)cout << " "; }
	cout << endl;
	sort(str2, str2 + n, cmp2);
	for (i = 0; i < n; i++) { cout << str2[i]; if (i != n - 1)cout << " "; }
	cout << endl;
	return 0;
}